package twelfth.字节流与字符流基本操作.字节流.InputStream;

import java.io.*;

/**
 * 解决上一个byte数组会开辟多余空间的问题，会造成资源的浪费
 * 如何根据文件的数据量选择开辟空间的大小？
 * 得靠File类 File类中有一个lenth()方法，这个方法就可以取得文件的大小
 */
public class 开辟指定大小的byte数组 {
    public static void main(String[] args) throws IOException {
        // 用File类找到文件
        String path = "D:" + File.separator + "WorkSpaces" + File.separator +
                "JavaDevelopBase_start_329" + File.separator + "src" + File.separator +
                "twelfth" + File.separator + "OutputStreamDemo.txt";
        /**
         * 注意输入文件的路径 如果指定的路径不存在 则运行一定会异常
         */
        File f = new File(path);// 必须给出路径
        InputStream is = new FileInputStream(f);
        byte [] b = new byte[(int) f.length()];
        int len = is.read(b);//返回值表示向数组中写入了多少数据
        is.close();
        System.out.println("内容为："+new String(b));
    }
}

/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=53705:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 twelfth.字节流与字符流基本操作.字节流.InputStream.开辟指定大小的byte数组
内容为：你好java
加油，少年！

Process finished with exit code 0
 */